Java – regular expressions extract specific strings
•
Java
1X79 "The X-Files" (1.01) 9/10/93 1/17/94* 11/ 6/94*
1X79 "The X-Files" (1.01) 9/10/93 1/17/94* 11/ 6/94* 1X01 "Deep Throat" (1.02) 9/17/93 12/24/93 6/24/94 1X02 "Squeeze" (1.03) 9/24/93 12/ 3/93 6/10/94 11/ 4/95* 1X03 "Conduit" (1.04) 10/ 1/93 12/14/93* 5/27/94 1X04 "Jersey Devil" (1.05) 10/ 8/93 12/31/93 7/22/94 1X05 "Shadows" (1.06) 10/22/93 3/ 4/94 5/26/95 1X06 "Ghost in the Machine" (1.07) 10/29/93 1/14/94 1X07 "Ice" (1.08) 11/ 5/93 1/17/94* 8/12/94 3/ 3/95 1X08 "Space" (1.09) 11/12/93 1/28/94 8/22/94* 1X09 "Fallen Angel" (1.10) 11/19/93 3/29/94* 11/13/94* 1X10 "Eve" (1.11) 12/10/93 3/11/94 8/26/94 1X11 "Fire" (1.12) 12/17/93 3/25/94 11/20/94* 1X12 "Beyond the Sea" (1.13) 1/ 7/94 4/ 8/94 12/22/95? 1X13 "GenderBender" (1.14) 1/21/94 5/20/94 7/21/95 1X14 "Lazarus" (1.15) 2/ 4/94 6/ 3/94 9/ 2/94 1X15 "Young at Heart" (1.16) 2/11/94 6/17/94 8/19/94 1X16 "E.B.E." (1.17) 2/18/94 7/ 8/94 11/27/94* 1X17 "Miracle Man" (1.18) 3/18/94 7/ 1/94 1X18 "Shapes" (1.19) 4/ 1/94 10/28/94 8/ 4/95 1X19 "Darkness Falls" (1.20) 4/15/94 8/ 5/94 12/ 2/94 1X20 "Tooms" (1.21) 4/22/94 7/15/94 11/ 4/95* 1X21 "Born Again" (1.22) 4/29/94 8/22/94* 1X22 "Roland" (1.23) 5/ 6/94 7/29/94 1X23 "The Erlenmeyer Flask" (1.24) 5/13/94 9/ 9/94 9/ 1/95
In view of this list, I need to extract:
Name (quotation marks)
This season (in parentheses)
The first year mentioned
Ex) for "x file", I need to extract '93'
I figured it out:
"(.*?)"+([\D]+)(.{4})
Which won the first two projects, but I can't figure out how to seize this year
Solution
Consider the following:
"([^"]+)"\s*\(([^\)]+)\)\s*\d+\/\s*\d+\/(\d+)
https://regex101.com/r/jU6kI0/1
The name is group (1), the season is group (2), and the year is group (3)
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
二维码