0
A
回答
11
^[^,]*,[^,]*\b(\w+)\b,
^
- 字符串/線路
[^ ]
的開始 - 任何字符不是...
,
- ...逗號
*
- 零個或多個前面的
,
- 逗號
[^,]*
- 同樣,任何不是逗號的字符,重複零次或多次
\b
- 甲字邊界(零寬度)
()
- 甲捕獲組
\w
- 任何單詞字符
+
- 一個或多個前述
\b
的 - 甲字邊界(零寬度)
,
- 逗號
2
這是基於Web不錯的工具,它的名字是txt2re
3
你的正則表達式可能是這個樣子:
^[^,]*,[^,]*\b(\w+),
比賽任何非逗號序列,後面跟着第一個逗號,接着是更多非逗號,然後是單詞邊界和您的實際單詞,然後是第二個逗號。
0
<?php
$s = "Hello, my name is David, bla bla.";
preg_match ("/[^,]*,[^,].* ([^,].*),.*/" , $s, $matches);
// or shorter ..
preg_match ("/[^,]*,[^,]*\b(\w+),/" , $s, $matches);
echo $matches[1];
// => David
?>
0
$s = "Hello, my name is David, bla bla.";
$s = explode(',', $s);
$s = explode(' ', $s[1]);
$test = $s[sizeof($s)-1];
print $test;
'David'
0
這裏是我的方法:
<?php
$input = 'Hello, my name is David, bla bla.';
$tmp = substr($input, 0, strpos($input, ',', strpos($input, ',') + 1));
$word = substr($tmp, strrpos($tmp, ' ') + 1);
echo $word;
?>
0
Hokay,我知道這是老了,但我練...
如何/,.*?(\w+),/
?
有這個優秀的工具保存的解釋:http://regex101.com/r/yA4gN5
,
的字符相匹配,從字面上.*?
匹配任何字符(除換行符)- 量詞:介於零和無限的時間,如幾次,儘可能擴大[懶惰]
- 1st捕獲組
(\w+)
\w+
匹配任何字字符並[a-ZA-Z0-9_]- 量詞:需要使用一到無限次,多次地,用之於爲[貪婪]
,
匹配的字符,從字面上
此正則表達式(與上面一些),如果大衛自己的名字後,進入非單詞字符,所以 失敗「大衛!」和「大衛」都失敗。
相關問題
- 1. 正則表達式查找逗號
- 2. 正則表達式在向前查找空格或逗號
- 3. 正則表達式前後查找逗號4位數字
- 4. 正則表達式:逗號
- 5. 正則表達式逗號
- 6. 正則表達式查找雙引號外的逗號PHP
- 7. 正則表達式在配對詞的列表中找到第二個詞
- 8. 正則表達式逗號之前的空格和數字
- 9. 查找單詞的正則表達式
- 10. 正常表達式逗號之前或結尾逗號
- 11. 在正則表達式逗號之前捕獲字符串
- 12. 查詢之前和之後的正則表達式查找
- 13. 正則表達式查找或返回第二個
- 14. 正則表達式逗號分隔號
- 15. 正則表達式的字符串在PHP中找到這個詞在逗號
- 16. 正則表達式:檢查逗號之間是否存在值
- 17. 正則表達式 - 使用CategorizedPlaintextCorpusReader查找第n個詞的第n個實例
- 18. 正則表達式大寫單詞的第二個字母
- 19. Python正則表達式查找單詞與其他詞分開
- 20. 正則表達式查找硬道理逗號
- 21. scala:正則表達式用於查找x個單詞之前和x個單詞之後的某個短語
- 22. 正則表達式在雙括號內逗號前的文本
- 23. 正則表達式 - 消除一切第n個逗號
- 24. 正則表達式結束串第一個逗號
- 25. 正則表達式用換行符替換第六個逗號
- 26. Python正則表達式找到配對引號的第二個引號
- 27. 的Perl /正則表達式 - 逗號
- 28. 正則表達式的preg_match用逗號
- 29. 爲逗號正則表達式的話
- 30. 查找括號內的單詞 - 正則表達式+ Ruby
字邊界是'\ b' - '\ w'就是字本身 – Amarghosh 2009-12-16 10:23:08
好點,謝謝。 – Thomas 2009-12-16 10:23:50
'\ w'是一個單詞字符,而不是一個單詞邊界。 '[^,]'是任何不是逗號的字符,也不是單詞字符。 – Svante 2009-12-16 10:24:24