[英]Get only first first occurence (if exists) in string with RegEx
我在使用 RegEx 時遇到了一些問題,它沒有達到我的預期。 有人可以告訴我哪里錯了嗎?
目標:獲取以“'s”結尾的第一個單詞(如果存在)(末尾有一個空格)
正則表達式:
".*'s "
測試字符串和預期結果:
Amarok's Golovin's Road => Amarok's
Arkouna Dream's Elowin Engel's => Arkouna Dream's
Arkouna Dream's Elowin Engel's => Arkouna Dream's (in this case, I added a space after Engel's)
Liubov's Niagara => Liubov's
Urane Of Watson Lake => nothing
問題:當我出現 2 次“'s”時,它會返回錯誤的結果。
您可以使用
^[A-Z][a-zA-Z]*(?:\s+[a-zA-Z]+)*'s(?!\S)
^\p{Lu}\p{L}*(?:\s+\p{L}+)*'s(?!\S)
請參閱正則表達式演示。 詳情:
^
- 字符串的開始\p{Lu}
- 大寫字母\p{L}*
- 零個或多個字母(?:\s+\p{L}+)*
- 一個或多個空白字符后跟一個或多個字母的零次或多次重復's
-安's
substring(?!\S)
- 右側空白邊界。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.