簡體   English   中英

如何使用正則表達式獲取特定字符后的所有字符,例如逗號(“,”)

[英]How can I use regex to get all the characters after a specific character, e.g. comma (“,”)

需要一個正則表達式來從變量中獲取, (不包括它)之后的所有字符。 這個變量可以包含例如

'SELECT___100E___7',24
'SELECT___100E___7',1
'SELECT___100E___7',286
'SELECT___100E___7',5147

注意:此變量中,后可以有任意長度的字符。

對正則表達式的解釋將是對新手的額外幫助:)

編輯:javascript 答案同樣好

你不需要正則表達式來做到這一點。 這是一個例子:

var str = "'SELECT___100E___7',24";
var afterComma = str.substr(str.indexOf(",") + 1); // Contains 24 //

簡答

要么:

  • ,[\\s\\S]*$,.*$匹配第一個逗號后的所有內容(請參閱使用哪個的解釋);

  • [^,]*$匹配最后一個逗號之后的所有內容(這可能是您想要的)。

例如,您可以在 JavaScript 中使用/[^,]*/.exec(s)[0] ,其中s是原始字符串。 如果您想使用多行模式並以這種方式查找所有匹配項,您可以使用s.match(/[^,]*/mg)來獲取一個數組(如果您的變量中有多個已發布的示例行單獨的行)。

說明

  • [\\s\\S]是匹配空白字符和非空白字符(即所有字符)的字符類。 這與. 因為它匹配換行符。
  • [^,]是一個否定字符類,匹配除逗號之外的所有內容。
  • *表示前一項可以重復 0 次或多次。
  • $是要求匹配結尾在字符串結尾(如果使用 /m 多行標志,則在行結尾)的錨點。

對於第一次匹配,第一個正則表達式找到第一個逗號,然后匹配之后的所有字符,直到行尾[\\s\\S]*$ ,包括逗號。

第二個正則表達式在行尾匹配盡可能多的非逗號字符。 因此,整個匹配將在最后一個逗號之后。

[^,]*$

可能會。 (匹配最后一個逗號之后的所有內容)。

說明: [^,]匹配除,之外的所有字符。 *表示正則表達式匹配任意數量的[^,]重復。 $符號匹配行尾。

.+,(.+)

說明:

.+,

將搜索逗號之前的所有內容,包括逗號。

(.+) 

將搜索逗號后的所有內容,具體取決於您的正則表達式環境,

\1

是您需要的第一個括號捕獲組的引用,在本例中,逗號之后的所有內容。

這匹配任何長度的單詞:

var phrase = "an important number comes after this: 123456";
var word = "this: ";
var number = phrase.substr(phrase.indexOf(word) + word.length);
// number = 123456

您可以嘗試以下操作:

new_string = your_string.split(',').pop().trim();

這是它的工作原理:

  • split(',')創建一個由your_string的不同部分組成的your_string

(例如,如果字符串是"'SELECT___100E___7',24" ,則數組將是["'SELECT___100E___7'", "24"] )。

  • pop()獲取數組的最后一個元素

(在示例中,它將是"24" )。

這已經足夠了,但如果可能有一些空格(不是在 OP 的情況下,而是在一般情況下),我們可以:

  • trim()將刪除字符串周圍的空格(如果它是" 24 " ,它將變成簡單的"24"

這是一個簡單的解決方案,肯定比正則表達式更容易。

另一個想法是做myVar.split(',')[1];

對於簡單的情況,不使用正則表達式是個好主意......

也許你可以試試這個

var str = "'SELECT___100E___7',24";
    var res = str.split(',').pop();

這應該工作

preg_match_all('@.*\,(.*)@', '{{your data}}', $arr, PREG_PATTERN_ORDER);

你可以在這里測試: http : //www.spaweditor.com/scripts/regex/index.php

正則表達式: .*\\,(.*)

此處針對 JavaScript 進行相同的 RegEx 測試: http : //www.regular-expressions.info/javascriptexample.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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