Home > Web Front-end > JS Tutorial > body text

Detailed analysis of matching single characters using regular expressions

php中世界最好的语言
Release: 2018-03-30 10:09:18
Original
2318 people have browsed it

This time I will bring you a detailed analysis of using regular expressions to match a single character. What are the precautions for using regular expressions to match a single character? The following is a practical case, let’s take a look.

The example in this article describes the regular expressiontutorial on matching a single character. Share it with everyone for your reference, as follows:

Note: In all examples, the regular expression matching results contain [ and ]## in the source text. #, some examples will be implemented using Java. If it is the usage of regular expressions in Java itself, it will be explained in the corresponding place. All java examples are tested under JDK1.6.0_13.

java test code:

/**
 * 根据正则表达式和要匹配的源文本,输出匹配结果
 * @param regex 正则表达式
 * @param sourceText 要匹配的源文本
 */
public static void matchAndPrint(String regex, String sourceText){
  Pattern pattern = Pattern.compile(regex);
  Matcher matcher = pattern.matcher(sourceText);
  while(matcher.find()){
    System.out.println(matcher.group());
  }
}
Copy after login

1. Match plain text

1. Only one matching result

First let’s look at a simple regular expression, today, although it is plain text itself, it is a regular expression. Let’s look at an example:

Source text:

Yesterday is history, tomorrow is a mystery, but today is a gift.

Regular expression:

today

Result: Yesterday is history, tomorrow is a mystery, but

[today] is a gift.

Analysis: The regular expression used here is plain text , which matches today in the source text.

Call the matchAndPrint method, the output result is:

today

2. There are multiple matching results

Source text:

Yesterday is history, tomorrow is a mystery, but today is a gift.

Regular expression:

is

Result :Yesterday is history, tomorrow is a mystery, but

[today] is a gift.

Analysis: In the source text, there are three is, but four is is output, because history is in will also be matched.

Call the matchAndPrint method, the output result is:

is

##is

##is

is

3. Letter case problem

The regular expression is Letters are case-sensitive, but many regular expression implementations also support case-insensitive matching operations. In JavaScript

, use the i flag to perform a case-insensitive match.

In java, if you want to be case-insensitive, when compiling the regular expression, you can specify:

Patternpattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
Copy after login
2. Match any character

The regular expressions we saw earlier are all static plain text, and they do not reflect the power of regular expressions at all. Next, let's see how to use regular expressions to match unpredictable characters.

In regular expressions,

Special characters

(or collections of characters) are used to give what to search for. The . character (English status period) can match any single character. Equivalent to the ? character in DOS and the _ (underscore) character in SQL. For example: the regular expression c.t will match cat, cut, cot, etc. Let’s look at an example.

Text:

orders1.txt

##orders2.txt

sales1.txt

salesA.txt

##orders3.txt

sales2.txt

sales.txt

Regular expression:

sales.

Result:

orders1.txt

orders2.txt

【sales1】.txt

【salesA】.txt

orders3.txt

【 sales2】.txt

【sales.】txt

Analysis: The regular expression sales. will combine stringsales and The file name composed of another note is found. From the results, it can be seen that. can match letters, numbers, and itself. 4 out of 7 files match this pattern.

If the matchAndPrint method is called, the output result is:

sales1

salesA

sales2

sales.

3. Match special characters

. Characters have special properties in regular expressions meaning. If you need a . in the pattern, you have to find a way to tell the regular expression that you need the . character itself rather than its special meaning in the regular expression. To do this, the . must be escaped by preceding it with a \ character. \ is also a metacharacter (metacharacter, indicating that this character has a special meaning, not the character meaning itself). Consider the following example.

Find files starting with na or sa, no matter what number follows it.

Text:

sales.txt

na1.txt

na2.txt

sa1.txt

sanatxt.txt

Regular expression: .a.. txt

Result:

[sal]es.txt

[na1].txt

【na2】.txt

【sa1】.txt

【sanatxt】.txt

Analysis: This regular rule found na1.txt, na2.txt, and sa1.txt, but also found two unexpected results. Because the . character in the regex .a..txt will match any character. To match the . character itself, you need to use \ escape. Modifying the regular expression to .a.\.txt can meet our needs.

Note: If you use java, then the regular expression .a.\.txt should be written as .a.\\.txt, because \ is also an escape character in the java language.

4. Summary

Regular expressions are often referred to as patterns. They are actually strings composed of some characters. These characters can be ordinary characters (plain text) or metacharacters (special characters with special meanings). Here is an introduction to how to use ordinary characters and metacharacters to match unit characters. .can match any character. \ is used to escape characters. In regular expressions, character sequences with special meanings always begin with the \ character.

I believe you have mastered the method after reading the case in this article. For more exciting information, please pay attention to other related articles on the php Chinese website!

Recommended reading:

Using php and js to implement regular password matching of numbers and letters

Regular in JQ Verification cannot contain Chinese methods

The above is the detailed content of Detailed analysis of matching single characters using regular expressions. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!