HiveBrain v1.2.0
Get Started
← Back to all entries
patterncsharpMinor

Checking if a line in a file contains user.Handle and '-r'+any single digit number

Submitted by: @import:stackexchange-codereview··
0
Viewed 0 times
filenumberlinehandleuseranycheckingsinglecontainsand

Problem

The title pretty much explains everything. I'm try to check if a line in a file contains user.Handle and '-r'+any single digit number, AND that the aforementioned user.Handle does not contain '-r'. I'm sure there is an easier way to do this. And I'm sorry if this made your eyes bleed.

if (line.Contains(user.Handle) && !user.Handle.Contains("-r") &&
line.Contains("-r1") || line.Contains(user.Handle) &&
!user.Handle.Contains("-r") && line.Contains("-r2") ||
line.Contains(user.Handle) && !user.Handle.Contains("-r") &&
line.Contains("-r3") || line.Contains(user.Handle) &&
!user.Handle.Contains("-r") && line.Contains("-r4") ||
line.Contains(user.Handle) && !user.Handle.Contains("-r") &&
line.Contains("-r5") || line.Contains(user.Handle) &&
!user.Handle.Contains("-r") && line.Contains("-r6") ||
line.Contains(user.Handle) && !user.Handle.Contains("-r") &&
line.Contains("-r7") || line.Contains(user.Handle) &&
!user.Handle.Contains("-r") && line.Contains("-r8") ||
line.Contains(user.Handle) && !user.Handle.Contains("-r") &&
line.Contains("-r9"))

Solution

If I see it correctly, you could already simplify your code by saying

if (line.Contains(user.Handle) && !user.Handle.Contains("-r") &&
    (line.Contains("-r1") || line.Contains("-r2") || ... line.Contains("-r9"))


That should be basically the same thing as the above. Now when you look at the last part, you could simplify it to a regular expression -r\d (not sure if - needs to be escaped here) So the final version could look like this:

if (line.Contains(user.Handle) && !user.Handle.Contains("-r") &&
    Regex.IsMatch(line, "-r\\d"))


did I get your question? Did I miss anything?

Code Snippets

if (line.Contains(user.Handle) && !user.Handle.Contains("-r") &&
    (line.Contains("-r1") || line.Contains("-r2") || ... line.Contains("-r9"))
if (line.Contains(user.Handle) && !user.Handle.Contains("-r") &&
    Regex.IsMatch(line, "-r\\d"))

Context

StackExchange Code Review Q#134579, answer score: 6

Revisions (0)

No revisions yet.