![](/img/trans.png)
[英]Struggling with a regex for matching inner quote+parenthesis. Do I need negative/positive look-ahead/behind?
[英]How do I use look-ahead in regex to match on no character?
我在函數中有一組正則表達式,對我來說效果很好,但是我遇到了一個失敗的新模式。 當字符串中沒有其他字符時,此函數將失敗。 例如,我的函數匹配並替換以下文本:“ 1 m is equivalent to...
”變為“ 1 meter is equivalent to...
”但是,它失敗了:“ There are 100 cm in 1 m
”
我正在使用AS3,我認為它有一個幾乎相當於JavaScript的正則表達式引擎。 目前的模式是:
[0-9]+ m(?= )|[0-9]+m(?= )
我遍歷模式列表和替換字符串,因此很容易將另一個模式添加到列表中。 我試過了:
[0-9]+ m(?=)|[0-9]+m(?=)
和:
[0-9]+ m(?='')|[0-9]+m(?='')
兩者都失敗了。 我錯過了一個基本的知識點。 我相信我需要知道怎么說,“當行中沒有其他角色時,前瞻和匹配”
您可以通過查找單詞邊界( \\b
)來簡化表達式; 這樣的事情:
var regex = /(\d+)\s*m\b/;
regex.exec('1 m is equivalent to...'); // => ["1 m", "1"]
regex.exec('There are 100 cm in 1 m'); // => ["1 m", "1"]
'行中沒有其他字符'相當於'在行尾',所以只需使用$
元字符
你正在尋找一個由序列\\b
表示的單詞邊界。 您可以使用表達式/\\d+\\s*m\\b/
\d+ - one or more digits
\s* - any number of spaces
m - a literal 'm'
\b - a word boundry
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.