2017-10-15 16 views
0

我嘗試在我的JavaScript代碼中設置正確的正則表達式,但我有點困惑與此。我的目標是找到任何發生在字符串中的「旋轉」。這應該很簡單,但實際上我迷路了,因爲我的「旋轉」可能有多個結局!這裏是什麼,我想找到與正則表達式的一些例子:我需要一些在javascript中的具體正則表達式的幫助

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

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

有人可以幫我嗎?

編輯:我試了一下,到目前爲止(可能缺少一些人):

  • /\wrotate.*/
  • /rotate.\w*/
  • /rotate.\d/
  • /\Srotate*/

我不完全理解正則表達式的機制呢。

+2

歡迎來到StackOverflow! 你到目前爲止嘗試過什麼嗎? StackOverflow不是一個免費的代碼寫入服務,並且期待你 [嘗試先解決你自己的問題](http://meta.stackoverflow.com/questions/261592)。 請更新您的問題,以顯示您已經嘗試過的內容,顯示您在 [最小,完整和可驗證示例](http://stackoverflow.com/help/mcve)中遇到的具體問題。 欲瞭解更多信息,請參閱 [如何問一個好問題], 並採取 [網站之旅](http:// http:// –

+0

嘗試旋轉[\ d - ] *' – Ibrahim

+0

比你易卜拉欣你的快速回復,不幸的是我已經嘗試過,它不工作:(。按照Jaromanda的要求,我會更新我的OP,把一些我試過的例子... – Slander

回答

2

嘗試this regex作爲開始。它將返回所有出現的「旋轉」字符串,其中一個數字(正數或負數)跟在「旋轉」之後。

/(rotate)([-]?[0-9]*)/g 

下面是示例代碼

var aString = ["rotate5","rotate180","rotate-1","some text rotate-270 rotate-1 more text rotate180"]; 
 
\t for (var x = 0; x < 4; x++){ 
 
\t  var match; 
 
\t  var regex = /(rotate)([-]?[0-9]*)/g; 
 
\t  while (match = regex.exec(aString[x])){ 
 
\t \t console.log(match); 
 
\t  } 
 
\t }

在這個例子中,

match[0]給出了整個匹配(例如rotate5)

match[1]給出噸轉「旋轉」

match[2]單詞「旋轉」

如果有多個字符串中轉動蜇傷後,立即給出了數字文本,這將返回所有這些

1

如果你只需要知道,如果'字'在字符串中,所以/rotate/只是會好的。

但是,如果你想了解之前或之後@mseifert什麼未來會好

如果你只是想更換一些詞匹配的另一個 你可以使用字符串方法String.replace使用旋轉它就像var str = "i am rotating with rotate-90"; str.repalace('rotate','turning')'

爲什麼你的正則表達式不工作?

/\wrotate.*/ 

意味着該字符串必須以卡拉科特開始並[a-ZA Z0-9_-]接着旋轉和另一個任選的字符

/rotate.\w*/ 

meanse旋轉必須跟一個字符和其他n可選用的字符 ...............

1

使用你的描述:

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

此正則表達式應該做的工作:

const regex = /(^rotate|rotate$|\ {1}rotate\ {1})/gm; 

您可以瞭解更多關於正則表達式與這些網站: