我有以下正則表達式https://www.regex101.com/r/ZvXQmI/2,它將匹配任何以@開頭的單詞。它工作得很好,但它不匹配文本開頭的字符串。感謝您能幫助我。此外,RegEx顯示它花費了1029個步驟。如果這可以減少以提高性能,高度讚賞。正則表達式匹配文本開始處的字符串
在此先感謝。
我有以下正則表達式https://www.regex101.com/r/ZvXQmI/2,它將匹配任何以@開頭的單詞。它工作得很好,但它不匹配文本開頭的字符串。感謝您能幫助我。此外,RegEx顯示它花費了1029個步驟。如果這可以減少以提高性能,高度讚賞。正則表達式匹配文本開始處的字符串
在此先感謝。
使用字邊界。
\B(?<word>@[a-zA-Z]\w+)\b
https://www.regex101.com/r/ZvXQmI/4
有效地,\ B中在兩個非單詞字符之間的任意位置的兩個單詞字符之間以及任何位置匹配。 (要求排除域,其中@之前是一個單詞字符)
瞧,42個步驟,結果相同。
試試這個
(?<word>@[a-zA-Z]\w+)(<|\s+)?
演示:https://www.regex101.com/r/ZvXQmI/3
如果你只是想與@
開始的話,你可以使用更簡單的東西
@[a-zA-Z]\w+
'\ b'確實不是必須的,因爲'\ w +'會一直捕捉到字邊界。 – 4castle
@ 4castle的權利,這將其降低到37個步驟。 :-) – dognose
你是對的@ 4castle。我刪除了\ b並將其縮小到37步。非常感謝。 – Frenz