Home Web Front-end JS Tutorial Detailed analysis of matching single characters using regular expressions

Detailed analysis of matching single characters using regular expressions

Mar 30, 2018 am 10:09 AM
character detailed

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!

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

Hot Article Tags

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to type arrows in Word How to type arrows in Word Apr 16, 2023 pm 11:37 PM

How to type arrows in Word

How to apply superscript and subscript formatting options in Microsoft Excel How to apply superscript and subscript formatting options in Microsoft Excel Apr 14, 2023 pm 12:07 PM

How to apply superscript and subscript formatting options in Microsoft Excel

How do you enter extended characters, such as the degree symbol, on iPhone and Mac? How do you enter extended characters, such as the degree symbol, on iPhone and Mac? Apr 22, 2023 pm 02:01 PM

How do you enter extended characters, such as the degree symbol, on iPhone and Mac?

Use java's Character.isDigit() function to determine whether a character is a number Use java's Character.isDigit() function to determine whether a character is a number Jul 27, 2023 am 09:32 AM

Use java's Character.isDigit() function to determine whether a character is a number

Correct way to display Chinese characters in matplotlib Correct way to display Chinese characters in matplotlib Jan 13, 2024 am 11:03 AM

Correct way to display Chinese characters in matplotlib

How to use Golang to determine whether a character is a letter How to use Golang to determine whether a character is a letter Dec 23, 2023 am 11:57 AM

How to use Golang to determine whether a character is a letter

Regarding the character representation of the Enter key in Java, which one is it? Regarding the character representation of the Enter key in Java, which one is it? Mar 29, 2024 am 11:48 AM

Regarding the character representation of the Enter key in Java, which one is it?

What are the characters that are incompatible with float? What are the characters that are incompatible with float? Oct 10, 2023 pm 04:26 PM

What are the characters that are incompatible with float?

See all articles