簡體   English   中英

我需要一些有關javascript中特定正則表達式的幫助

[英]I need some help for a specific regex in javascript

我嘗試在我的JavaScript代碼中設置正確的正則表達式,但對此有些困惑。 我的目標是查找字符串中是否發生“旋轉”。 這應該很簡單,但實際上我迷路了,因為我的“旋轉”可以有多個結局! 以下是一些我想用正則表達式查找的示例:

  • rotate5
  • rotate180
  • 旋轉-1
  • 旋轉-270

“旋轉”字可以在我的字符串的開頭或結尾,甚至可以在中間用空格隔開。 正則表達式將用於搜索和替換功能。

有人能幫助我嗎?

編輯:到目前為止,我嘗試過什么(可能缺少其中一些):

  • /\\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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM