[英]I need some help for a specific regex in javascript
我嘗試在我的JavaScript代碼中設置正確的正則表達式,但對此有些困惑。 我的目標是查找字符串中是否發生“旋轉”。 這應該很簡單,但實際上我迷路了,因為我的“旋轉”可以有多個結局! 以下是一些我想用正則表達式查找的示例:
“旋轉”字可以在我的字符串的開頭或結尾,甚至可以在中間用空格隔開。 正則表達式將用於搜索和替換功能。
有人能幫助我嗎?
編輯:到目前為止,我嘗試過什么(可能缺少其中一些):
/\\wrotate.*/
/rotate.\\w*/
/rotate.\\d/
/\\Srotate*/
我還沒有完全了解正則表達式機制。
嘗試此正則表達式作為開始。 它將返回所有出現的“旋轉”字符串,其中在“旋轉”后跟一個數字(正數或負數)。
/(rotate)([-]?[0-9]*)/g
這是示例代碼
var aString = ["rotate5","rotate180","rotate-1","some text rotate-270 rotate-1 more text rotate180"]; for (var x = 0; x < 4; x++){ var match; var regex = /(rotate)([-]?[0-9]*)/g; while (match = regex.exec(aString[x])){ console.log(match); } }
在這個例子中
match[0]
給出整個匹配(例如rotate5)
match[1]
給出文本“旋轉”
match[2]
在單詞“ rotate”之后立即給出數字文本
如果字符串中有多個旋轉st,則將它們全部返回
如果您只想知道'word'是否在字符串中,那么/rotate/
就可以了。
但是,如果您想對@mseifert之前或之后的內容進行一些匹配,則會很好
如果您只想用另一個替換rotate一詞,則可以使用字符串方法String.replace
,就像var str = "i am rotating with rotate-90"; str.repalace('rotate','turning')'
var str = "i am rotating with rotate-90"; str.repalace('rotate','turning')'
為什么您的正則表達式不起作用?
/\wrotate.*/
表示字符串必須以字符[a-zA-Z0-9_]開頭,后跟旋轉和另一個可選字符
/rotate.\w*/
表示旋轉必須后面跟一個字符和其他n個可選字符......
使用您的描述:
“旋轉”字可以在字符串的開頭或結尾,甚至可以在中間用空格隔開。 正則表達式將用於搜索和替換功能。
此正則表達式應完成以下工作:
const regex = /(^rotate|rotate$|\ {1}rotate\ {1})/gm;
您可以通過以下網站了解有關正則表達式的更多信息:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.